/**
 *
 */
package org.lightmtv.config;

import java.lang.reflect.Type;
import java.util.Map;

/**
 * @author GL
 *
 * @since 2007-12-21
 */
public interface Invoker {

	public Type getType(String expression,Type topType);

	public Type getType(String expression, Map ctx, Object root);

	public Object getValue(String expression, Map ctx, Object root) ;

	/**
	 *
	 * @param expression  a.b.c
	 * @param ctx
	 * @param root
	 * @param value
	 */
	public void setValue(String expression, Map ctx, Object root, Object value);
}
